GtkMenuItem: only set 'separator' class on the separator line
authorLars Uebernickel <lars.uebernickel@canonical.com>
Wed, 4 Dec 2013 18:45:30 +0000 (19:45 +0100)
committerLars Uebernickel <lars.uebernickel@canonical.com>
Thu, 5 Dec 2013 11:35:12 +0000 (12:35 +0100)
To make the separator line distinguishable from the widget's normal
border from css.

https://bugzilla.gnome.org/show_bug.cgi?id=719861

gtk/gtkmenuitem.c
gtk/gtkseparatormenuitem.c

index e6430db1e5dcfdabf1b364e79fd5b303bfad9ada..61843f7855a37301fa508840cb9c6f5499375b94 100644 (file)
@@ -987,6 +987,9 @@ gtk_menu_item_real_get_height (GtkWidget *widget,
       gboolean wide_separators;
       gint     separator_height;
 
+      gtk_style_context_save (context);
+      gtk_style_context_add_class (context, GTK_STYLE_CLASS_SEPARATOR);
+
       gtk_widget_style_get (widget,
                             "wide-separators",  &wide_separators,
                             "separator-height", &separator_height,
@@ -1007,6 +1010,8 @@ gtk_menu_item_real_get_height (GtkWidget *widget,
           if (nat_height % 2 == 0)
             nat_height += 1;
         }
+
+      gtk_style_context_restore (context);
     }
 
   accel_width = 0;
@@ -1696,6 +1701,9 @@ gtk_menu_item_draw (GtkWidget *widget,
       gboolean wide_separators;
       gint     separator_height;
 
+      gtk_style_context_save (context);
+      gtk_style_context_add_class (context, GTK_STYLE_CLASS_SEPARATOR);
+
       gtk_widget_style_get (widget,
                             "wide-separators",    &wide_separators,
                             "separator-height",   &separator_height,
@@ -1712,6 +1720,8 @@ gtk_menu_item_draw (GtkWidget *widget,
                          y + padding.top,
                          x + w - padding.right - 1,
                          y + padding.top);
+
+      gtk_style_context_restore (context);
     }
 
   GTK_WIDGET_CLASS (gtk_menu_item_parent_class)->draw (widget, cr);
index da721297067eac0f0572bc7c821fdedf2e9c58d2..938ca215184c1b40552b80ff28b23643a5d75031 100644 (file)
@@ -51,10 +51,6 @@ gtk_separator_menu_item_class_init (GtkSeparatorMenuItemClass *class)
 static void 
 gtk_separator_menu_item_init (GtkSeparatorMenuItem *item)
 {
-  GtkStyleContext *context;
-
-  context = gtk_widget_get_style_context (GTK_WIDGET (item));
-  gtk_style_context_add_class (context, GTK_STYLE_CLASS_SEPARATOR);
 }
 
 /**